package org.gap.web.jsf;

import java.util.Calendar;
import java.util.List;

import org.gap.dao.TiersDAO;
import org.gap.dao.TiersModifDAO;
import org.gap.dao.UtilisateursDAO;

import org.gap.domain.Tiers;
import org.gap.domain.TiersModif;
import org.gap.domain.Utilisateurs;

import org.gap.service.TiersModifService;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.context.annotation.Scope;

import org.springframework.stereotype.Component;

import org.springframework.transaction.annotation.Transactional;

/**
 * Spring Component that handles CRUD requests for TiersModif entities
 * 
 */
@Scope("session")
@Component("TiersModifComponent")
public class TiersModifComponentImpl implements TiersModifComponent {

	/**
	 * Data type variable that provides CRUD operations for TiersModif entities
	 * 
	 */
	private TiersModif tiersmodif;

	/**
	 * DAO injected by Spring that manages Utilisateurs entities
	 * 
	 */
	private Utilisateurs utilisateurs;

	/**
	 * DAO injected by Spring that manages Tiers entities
	 * 
	 */
	private Tiers tiers;

	/**
	 * DAO injected by Spring that manages Tiers entities
	 * 
	 */
	@Autowired
	private TiersDAO tiersDAO;

	/**
	 * DAO injected by Spring that manages TiersModif entities
	 * 
	 */
	@Autowired
	private TiersModifDAO tiersModifDAO;

	/**
	 * DAO injected by Spring that manages Utilisateurs entities
	 * 
	 */
	@Autowired
	private UtilisateursDAO utilisateursDAO;

	/**
	 * Service injected by Spring that provides CRUD operations for TiersModif entities
	 * 
	 */
	@Autowired
	private TiersModifService tiersModifService;

	/** 
	 */
	public TiersModifComponentImpl() {
	}

	/**
	 * Edit an existing Tiers entity
	 * 
	 */
	@Transactional
	public String editTiersModifTiers(Integer tiersmodif_tmoTiers, String tiersmodif_tmoNomChampModif, Calendar tiersmodif_tmoDateModification, Integer related_tiers_tieTiers) {
		tiers = tiersDAO.findTiersByPrimaryKey(related_tiers_tieTiers, -1, -1);
		return "/jsf/tiersmodif/tiers/editTiers.xhtml";
	}

	/**
	 * Delete an existing Utilisateurs entity
	 * 
	 */
	@Transactional
	public String deleteTiersModifUtilisateurs(Integer tiersmodif_tmoTiers, String tiersmodif_tmoNomChampModif, Calendar tiersmodif_tmoDateModification, String related_utilisateurs_usrUser) {
		tiersmodif = tiersModifService.deleteTiersModifUtilisateurs(tiersmodif_tmoTiers, tiersmodif_tmoNomChampModif, tiersmodif_tmoDateModification, related_utilisateurs_usrUser);

		return "/jsf/tiersmodif/viewTiersModif.xhtml";
	}

	/**
	 * Delete an existing Tiers entity
	 * 
	 */
	@Transactional
	public String deleteTiersModifTiers(Integer tiersmodif_tmoTiers, String tiersmodif_tmoNomChampModif, Calendar tiersmodif_tmoDateModification, Integer related_tiers_tieTiers) {
		tiersmodif = tiersModifService.deleteTiersModifTiers(tiersmodif_tmoTiers, tiersmodif_tmoNomChampModif, tiersmodif_tmoDateModification, related_tiers_tieTiers);

		return "/jsf/tiersmodif/viewTiersModif.xhtml";
	}

	/**
	 * Get Utilisateurs entity by TiersModif
	 * 
	 */
	@Transactional
	public Utilisateurs getTiersModifUtilisateurs(Integer tmoTiersKey, String tmoNomChampModifKey, Calendar tmoDateModificationKey) {
		return tiersModifDAO.findTiersModifByPrimaryKey(tmoTiersKey, tmoNomChampModifKey, tmoDateModificationKey).getUtilisateurs();
	}

	/**
	 * Create a new TiersModif entity
	 * 
	 */
	@Transactional
	public String newTiersModif() {
		tiersmodif = new TiersModif();

		return "/jsf/tiersmodif/createTiersModif.xhtml";
	}

	/**
	 * View an existing Utilisateurs entity
	 * 
	 */
	@Transactional
	public String selectTiersModifUtilisateurs(Integer tiersmodif_tmoTiers, String tiersmodif_tmoNomChampModif, Calendar tiersmodif_tmoDateModification, String related_utilisateurs_usrUser) {
		utilisateurs = utilisateursDAO.findUtilisateursByPrimaryKey(related_utilisateurs_usrUser, -1, -1);
		return "/jsf/tiersmodif/utilisateurs/viewUtilisateurs.xhtml";
	}

	/**
	 * Getter for variable TiersModif
	 * 
	 */
	@Transactional
	public TiersModif getTiersmodif() {
		return tiersmodif;
	}

	/**
	 * Select the child Utilisateurs entity for display allowing the user to confirm that they would like to delete the entity
	 * 
	 */
	@Transactional
	public String confirmDeleteTiersModifUtilisateurs(Integer tiersmodif_tmoTiers, String tiersmodif_tmoNomChampModif, Calendar tiersmodif_tmoDateModification, String related_utilisateurs_usrUser) {
		utilisateurs = utilisateursDAO.findUtilisateursByPrimaryKey(related_utilisateurs_usrUser);

		return "/jsf/tiersmodif/utilisateurs/deleteUtilisateurs.xhtml";
	}

	/**
	 * Save an existing TiersModif entity
	 * 
	 */
	@Transactional
	public String saveTiersModif(TiersModif tiersmodif) {
		tiersModifService.saveTiersModif(tiersmodif);
		return "/jsf/tiersmodif/listTiersModifs.xhtml";
	}

	/**
	 * Save an existing Tiers entity
	 * 
	 */
	@Transactional
	public String saveTiersModifTiers(Integer tiersmodif_tmoTiers, String tiersmodif_tmoNomChampModif, Calendar tiersmodif_tmoDateModification, Tiers tiers) {
		tiersmodif = tiersModifService.saveTiersModifTiers(tiersmodif_tmoTiers, tiersmodif_tmoNomChampModif, tiersmodif_tmoDateModification, tiers);

		return "/jsf/tiersmodif/viewTiersModif.xhtml";
	}

	/**
	 * View an existing Tiers entity
	 * 
	 */
	@Transactional
	public String selectTiersModifTiers(Integer tiersmodif_tmoTiers, String tiersmodif_tmoNomChampModif, Calendar tiersmodif_tmoDateModification, Integer related_tiers_tieTiers) {
		tiers = tiersDAO.findTiersByPrimaryKey(related_tiers_tieTiers, -1, -1);
		return "/jsf/tiersmodif/tiers/viewTiers.xhtml";
	}

	/**
	 * Get Tiers entity by TiersModif
	 * 
	 */
	@Transactional
	public Tiers getTiersModifTiers(Integer tmoTiersKey, String tmoNomChampModifKey, Calendar tmoDateModificationKey) {
		return tiersModifDAO.findTiersModifByPrimaryKey(tmoTiersKey, tmoNomChampModifKey, tmoDateModificationKey).getTiers();
	}

	/**
	 * Edit an existing Utilisateurs entity
	 * 
	 */
	@Transactional
	public String editTiersModifUtilisateurs(Integer tiersmodif_tmoTiers, String tiersmodif_tmoNomChampModif, Calendar tiersmodif_tmoDateModification, String related_utilisateurs_usrUser) {
		utilisateurs = utilisateursDAO.findUtilisateursByPrimaryKey(related_utilisateurs_usrUser, -1, -1);
		return "/jsf/tiersmodif/utilisateurs/editUtilisateurs.xhtml";
	}

	/**
	 * Show all TiersModif entities
	 * 
	 */
	@Transactional
	public List<TiersModif> listTiersModifs() {
		return new java.util.ArrayList<TiersModif>(tiersModifService.loadTiersModifs());
	}

	/**
	 * Getter for variable TiersModif
	 * 
	 */
	@Transactional
	public Tiers getTiers() {
		return tiers;
	}

	/**
	 * Select the child Tiers entity for display allowing the user to confirm that they would like to delete the entity
	 * 
	 */
	@Transactional
	public String confirmDeleteTiersModifTiers(Integer tiersmodif_tmoTiers, String tiersmodif_tmoNomChampModif, Calendar tiersmodif_tmoDateModification, Integer related_tiers_tieTiers) {
		tiers = tiersDAO.findTiersByPrimaryKey(related_tiers_tieTiers);

		return "/jsf/tiersmodif/tiers/deleteTiers.xhtml";
	}

	/**
	 * Select an existing TiersModif entity
	 * 
	 */
	@Transactional
	public String selectTiersModif(Integer tmoTiersKey, String tmoNomChampModifKey, Calendar tmoDateModificationKey) {
		tiersmodif = tiersModifDAO.findTiersModifByPrimaryKey(tmoTiersKey, tmoNomChampModifKey, tmoDateModificationKey);

		return "/jsf/tiersmodif/viewTiersModif.xhtml";
	}

	/**
	 * Select the TiersModif entity for display allowing the user to confirm that they would like to delete the entity
	 * 
	 */
	@Transactional
	public String confirmDeleteTiersModif(Integer tmoTiersKey, String tmoNomChampModifKey, Calendar tmoDateModificationKey) {
		tiersmodif = tiersModifDAO.findTiersModifByPrimaryKey(tmoTiersKey, tmoNomChampModifKey, tmoDateModificationKey);

		return "/jsf/tiersmodif/deleteTiersModif.xhtml";
	}

	/**
	 * Create a new Tiers entity
	 * 
	 */
	@Transactional
	public String newTiersModifTiers(Integer tiersmodif_tmoTiers, String tiersmodif_tmoNomChampModif, Calendar tiersmodif_tmoDateModification) {
		tiers = new Tiers();

		return "/jsf/tiersmodif/tiers/createTiers.xhtml";
	}

	/**
	 * Save an existing Utilisateurs entity
	 * 
	 */
	@Transactional
	public String saveTiersModifUtilisateurs(Integer tiersmodif_tmoTiers, String tiersmodif_tmoNomChampModif, Calendar tiersmodif_tmoDateModification, Utilisateurs utilisateurs) {
		tiersmodif = tiersModifService.saveTiersModifUtilisateurs(tiersmodif_tmoTiers, tiersmodif_tmoNomChampModif, tiersmodif_tmoDateModification, utilisateurs);

		return "/jsf/tiersmodif/viewTiersModif.xhtml";
	}

	/**
	 * Getter for variable TiersModif
	 * 
	 */
	@Transactional
	public Utilisateurs getUtilisateurs() {
		return utilisateurs;
	}

	/**
	 * Edit an existing TiersModif entity
	 * 
	 */
	@Transactional
	public String editTiersModif(Integer tmoTiersKey, String tmoNomChampModifKey, Calendar tmoDateModificationKey) {
		tiersmodif = tiersModifDAO.findTiersModifByPrimaryKey(tmoTiersKey, tmoNomChampModifKey, tmoDateModificationKey);

		return "/jsf/tiersmodif/editTiersModif.xhtml";
	}

	/**
	 * Delete an existing TiersModif entity
	 * 
	 */
	@Transactional
	public String deleteTiersModif(Integer tmoTiersKey, String tmoNomChampModifKey, Calendar tmoDateModificationKey) {
		TiersModif tiersmodif = tiersModifDAO.findTiersModifByPrimaryKey(tmoTiersKey, tmoNomChampModifKey, tmoDateModificationKey);
		tiersModifService.deleteTiersModif(tiersmodif);
		return "/jsf/tiersmodif/listTiersModifs.xhtml";
	}

	/**
	 * Create a new Utilisateurs entity
	 * 
	 */
	@Transactional
	public String newTiersModifUtilisateurs(Integer tiersmodif_tmoTiers, String tiersmodif_tmoNomChampModif, Calendar tiersmodif_tmoDateModification) {
		utilisateurs = new Utilisateurs();

		return "/jsf/tiersmodif/utilisateurs/createUtilisateurs.xhtml";
	}

}
